package com.ruoyi.pay.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.pay.domain.PayCoinUser;
import com.ruoyi.pay.domain.PayCoinUserForm;
import com.ruoyi.pay.domain.vo.PayCoinUserVO;

/**
 * 趣币明细Service接口
 * 
 * @author ruoyi
 * @date 2022-08-05
 */
public interface IPayCoinUserService extends IService<PayCoinUser>
{
    /**
     * 查询趣币明细
     * 
     * @param id 趣币明细主键
     * @return 趣币明细
     */
    public PayCoinUser selectPayCoinUserById(String id);

    /**
     * 查询趣币明细列表
     * 
     * @param payCoinUser 趣币明细
     * @return 趣币明细集合
     */
    public List<PayCoinUser> selectPayCoinUserList(PayCoinUser payCoinUser);

    /**
     * 新增趣币明细
     * 
     * @param payCoinUser 趣币明细
     * @return 结果
     */
    public int insertPayCoinUser(PayCoinUser payCoinUser);

    /**
     * 修改趣币明细
     * 
     * @param payCoinUser 趣币明细
     * @return 结果
     */
    public int updatePayCoinUser(PayCoinUser payCoinUser);

    /**
     * 批量删除趣币明细
     * 
     * @param ids 需要删除的趣币明细主键集合
     * @return 结果
     */
    public int deletePayCoinUserByIds(String[] ids);

    /**
     * 删除趣币明细信息
     * 
     * @param id 趣币明细主键
     * @return 结果
     */
    public int deletePayCoinUserById(String id);

	public Integer getAmount();

	public Integer saveApply(PayCoinUserForm payCoinUserForm);

	public void savePayCoinUser(PayCoinUserForm payCoinUserForm);

	/**
	 * 返还趣币
	 * @param userId
	 * @param sourceId
	 * @param remark
	 */
	public void updateCoinUserBack(Long userId, String sourceId, String remark);

	public TableDataInfo getCoinByUserId(PayCoinUser payCoinUser);

	public void savePartyPayCoinUser(PayCoinUserForm payCoinUserForm);

	public TableDataInfo getCoinList(PayCoinUser payCoinUser);

	public Integer getPayAmount();

	public List<PayCoinUser> getMyPayCoinList(PayCoinUser payCoinUser);

	public TableDataInfo getMyCoinUserList(PayCoinUserVO payCoinUser);

	public PayCoinUser getCoinUserBySrouceId(String sourceId);

	public Integer getMyCashMoney(PayCoinUserVO payCoinUser);

}
